package Dao.StatisticalReportDao;

import Model.StatisticalReport.ReportStatisticsQuery;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface StatisticsDao {

    int countDepartmentSummary(@Param("query")ReportStatisticsQuery query);
    List<Map<String, Object>> selectDepartmentNum(@Param("query")ReportStatisticsQuery query);
    List<Map<String, Object>> selectDepartmentTimes(@Param("query")ReportStatisticsQuery query);
    List<Map<String, Object>> selectDepartmentExpense(@Param("query")ReportStatisticsQuery query);
    List<Map<String, Object>> selectDepartmentPayment(@Param("query")ReportStatisticsQuery query);

    int countHomeSummary(@Param("query")ReportStatisticsQuery query);
    List<Map<String, Object>> selectHomeNum(@Param("query")ReportStatisticsQuery query);
    List<Map<String, Object>> selectHomeTimes(@Param("query")ReportStatisticsQuery query);
    List<Map<String, Object>> selectHomeExpense(@Param("query")ReportStatisticsQuery query);
    List<Map<String, Object>> selectHomePayment(@Param("query")ReportStatisticsQuery query);

    int countEvaluateSummary(@Param("query")ReportStatisticsQuery query);
    List<Map<String, Object>> selectEvaluateNum(@Param("query")ReportStatisticsQuery query);
    List<Map<String, Object>> selectEvaluateTimes(@Param("query")ReportStatisticsQuery query);
    List<Map<String, Object>> selectEvaluateExpense(@Param("query")ReportStatisticsQuery query);
    List<Map<String, Object>> selectEvaluatePayment(@Param("query")ReportStatisticsQuery query);


    int countSettlement(@Param("query") ReportStatisticsQuery query);
    List<Map<String, Object>> selectSettlement(@Param("query") ReportStatisticsQuery query);


    List<Map<String, Object>> selectTotalExpense(@Param("query") ReportStatisticsQuery query);

    List<Map<String, Object>> selectMonthly(@Param("query") ReportStatisticsQuery query);
}

